common.skill

COBOL এ লুপিং এবং ইটারেশন (Looping and Iteration in COBOL)

Computer Programming - কোবল (COBOL)
231
231

COBOL এ লুপিং এবং ইটারেশন (Looping and Iteration in COBOL)

COBOL এ লুপিং এবং ইটারেশন খুবই গুরুত্বপূর্ণ, কারণ এগুলোর মাধ্যমে একটি কোডের অংশ একাধিকবার পুনরাবৃত্তি করা যায়। COBOL এ বিভিন্ন ধরনের লুপিং কৌশল ব্যবহার করা যায়, যেমন PERFORM, WITH TEST AFTER, WITH TEST BEFORE, এবং VARYING। এইসব কৌশল ব্যবহৃত হয় যখন কোনো নির্দিষ্ট শর্ত পূর্ণ হলে বা নির্দিষ্ট সময় পর্যন্ত একটি কোড ব্লক বারবার এক্সিকিউট করতে হয়।


১. PERFORM স্টেটমেন্ট (PERFORM Statement)

PERFORM স্টেটমেন্ট COBOL এর একটি সাধারণ লুপিং কৌশল, যা একটি নির্দিষ্ট প্রক্রিয়া বা সাবরুটিন একাধিকবার কার্যকর করতে ব্যবহৃত হয়।

সিনট্যাক্স:

PERFORM statement-name {UNTIL condition}.

উদাহরণ:

PERFORM DisplayMessage UNTIL Counter = 5.

DisplayMessage.
    DISPLAY 'This is message number: ' Counter.
    ADD 1 TO Counter.
END-PERFORM.

এখানে, PERFORM স্টেটমেন্টটি DisplayMessage সাবরুটিনটি ৫ বার কার্যকর করবে যতক্ষণ না Counter এর মান ৫ হবে। প্রতিটি পুনরাবৃত্তির পরে Counter এর মান ১ বাড়ানো হবে এবং মেসেজ প্রদর্শিত হবে।


২. PERFORM VARYING (Varying Loop)

COBOL এ PERFORM VARYING স্টেটমেন্টটি ব্যবহার করা হয় একটি ভেরিয়েবল মান পরিবর্তন (varying) করে লুপ চালানোর জন্য। এটি সাধারণত ইনডেক্স বা কাউন্টার ভেরিয়েবল ব্যবহারের জন্য ব্যবহৃত হয়।

সিনট্যাক্স:

PERFORM VARYING index-variable FROM start-value BY increment UNTIL end-condition
    statement(s)
END-PERFORM.

উদাহরণ:

PERFORM VARYING Counter FROM 1 BY 1 UNTIL Counter > 5
    DISPLAY 'This is message number: ' Counter
END-PERFORM.

এখানে Counter ভেরিয়েবলটি ১ থেকে শুরু হয়ে ৫ পর্যন্ত প্রতি পুনরাবৃত্তিতে ১ করে বাড়বে, এবং প্রতিটি বার DISPLAY স্টেটমেন্টটি কার্যকর হবে।


৩. WITH TEST AFTER এবং WITH TEST BEFORE

COBOL এ WITH TEST AFTER এবং WITH TEST BEFORE ব্যবহার করা হয় লুপের শর্ত পরীক্ষা করার জন্য। এই দুটি কৌশলের মধ্যে পার্থক্য হল যে WITH TEST AFTER লুপের শর্ত পরীক্ষা করার আগে কোড ব্লকটি অন্তত একবার কার্যকর হয়, তবে WITH TEST BEFORE কোড ব্লকটি কার্যকর করার আগে শর্ত পরীক্ষা করে।

১. WITH TEST AFTER

  • কোড ব্লক প্রথমে এক্সিকিউট হবে এবং তারপর শর্ত পরীক্ষা করা হবে।

সিনট্যাক্স:

PERFORM UNTIL condition WITH TEST AFTER
    statement(s)
END-PERFORM.

উদাহরণ:

PERFORM UNTIL Counter > 5 WITH TEST AFTER
    DISPLAY 'Counter value is: ' Counter
    ADD 1 TO Counter
END-PERFORM.

এখানে প্রথমে Counter এর মান প্রদর্শিত হবে, তারপর Counter এর মান ১ বাড়ানো হবে, এবং পরবর্তী চক্রে শর্ত পরীক্ষা করা হবে।

২. WITH TEST BEFORE

  • শর্ত প্রথমে পরীক্ষা করা হয় এবং তারপর কোড ব্লকটি এক্সিকিউট হয় যদি শর্ত সঠিক হয়।

সিনট্যাক্স:

PERFORM UNTIL condition WITH TEST BEFORE
    statement(s)
END-PERFORM.

উদাহরণ:

PERFORM UNTIL Counter > 5 WITH TEST BEFORE
    ADD 1 TO Counter
    DISPLAY 'Counter value is: ' Counter
END-PERFORM.

এখানে প্রথমে শর্ত পরীক্ষা করা হবে, তারপর Counter এর মান ১ বাড়ানো হবে এবং তারপরে মান প্রদর্শিত হবে।


৪. EXIT WHEN (Breaking out of the loop)

EXIT WHEN স্টেটমেন্টটি লুপের মধ্যে কোনো শর্ত পূর্ণ হলে লুপটি থেকে বের হয়ে যেতে ব্যবহৃত হয়। এটি PERFORM স্টেটমেন্টের ভিতর ব্যবহার করা হয় লুপ শেষ করার জন্য।

সিনট্যাক্স:

PERFORM
    statement(s)
    EXIT WHEN condition
END-PERFORM.

উদাহরণ:

PERFORM UNTIL Counter > 5
    DISPLAY 'Counter value is: ' Counter
    ADD 1 TO Counter
    EXIT WHEN Counter = 3
END-PERFORM.

এখানে, লুপটি Counter এর মান ৩ হওয়ার পরেই থেমে যাবে, এবং EXIT WHEN শর্তটি পূর্ণ হলে লুপটি বন্ধ হয়ে যাবে।


সারসংক্ষেপ

COBOL এ লুপিং এবং ইটারেশন প্রোগ্রামকে আরও শক্তিশালী এবং কার্যকর করে তোলে। PERFORM, PERFORM VARYING, WITH TEST AFTER, WITH TEST BEFORE, এবং EXIT WHEN স্টেটমেন্টগুলো ব্যবহার করে আপনি কোডের পুনরাবৃত্তি কার্যকরভাবে করতে পারেন। এইসব স্টেটমেন্টের মাধ্যমে একটি নির্দিষ্ট শর্ত পূর্ণ হওয়া পর্যন্ত প্রোগ্রামের একটি অংশ একাধিকবার কার্যকর করা সম্ভব হয়, যা ডেটা প্রক্রিয়া এবং অন্যান্য অপারেশনগুলি সহজ ও দ্রুত করতে সহায়তা করে।

common.content_added_by

PERFORM স্টেটমেন্ট এর ব্যবহার

211
211

PERFORM স্টেটমেন্ট এর ব্যবহার

COBOL প্রোগ্রামিং ভাষায় PERFORM স্টেটমেন্ট একটি শক্তিশালী এবং গুরুত্বপূর্ণ নির্দেশনা, যা কোডের পুনঃব্যবহারযোগ্য অংশগুলো একসাথে গ্রুপ করতে সাহায্য করে। PERFORM স্টেটমেন্ট ব্যবহার করে একাধিক প্রোগ্রাম স্টেটমেন্ট বা একটি সেকশন বা প্যারাগ্রাফকে কার্যকর করা যায়। এটি কোডের কার্যকারিতা সংক্ষেপে এবং আরও সংগঠিতভাবে তৈরি করতে সহায়ক।

PERFORM স্টেটমেন্ট দুটি প্রধানভাবে ব্যবহৃত হয়:

  1. Inline Perform: যেখানে একটি নির্দিষ্ট কোড স্নিপেট একাধিকবার কার্যকর করা হয়।
  2. Paragraph Perform: যেখানে এক বা একাধিক প্যারাগ্রাফ বা সেকশন কার্যকর করা হয়।

PERFORM স্টেটমেন্টের সাধারণ গঠন

Sintax:

PERFORM [paragraph-name] [times].
  • paragraph-name: এটি সেই প্যারাগ্রাফের নাম যা কার্যকর হবে।
  • times: এটি ঐ প্যারাগ্রাফ বা কোড স্নিপেটটি কতবার কার্যকর হবে, সেটি নির্ধারণ করে।

উদাহরণ:

PERFORM ADDITION.

এখানে ADDITION হলো একটি প্যারাগ্রাফের নাম, যা COBOL প্রোগ্রামে অন্য কোথাও সংজ্ঞায়িত থাকবে।


1. Inline Perform (এক লাইন কোড)

Inline Perform-এ কোডের মধ্যে সোজাসুজি PERFORM স্টেটমেন্ট ব্যবহার করা হয়, যেখানে নির্দিষ্ট একটি কাজ একাধিকবার বা এককভাবে করা হয়।

উদাহরণ:

PERFORM VARYING I FROM 1 BY 1 UNTIL I > 10
   DISPLAY 'Number: ' I
END-PERFORM.

এখানে, PERFORM VARYING স্টেটমেন্টটি I নামক ভেরিয়েবলটি ১ থেকে ১০ পর্যন্ত বৃদ্ধি পায় এবং প্রতি বার I এর মান স্ক্রীনে প্রদর্শিত হয়।

ব্যাখ্যা:

  • VARYING: এটি ইন্ডেক্স ভেরিয়েবল বা কাউন্টারকে বৃদ্ধি বা হ্রাস করার জন্য ব্যবহৃত হয়।
  • FROM: শুরু করার মান।
  • BY: প্রতিটি প্যারাগ্রাফের এক্সিকিউশনের পরে যে পরিমাণ বৃদ্ধি পাবে।
  • UNTIL: শর্ত যা নিশ্চিত করবে যে লুপটি কত বার চলবে।

2. Paragraph Perform (প্যারাগ্রাফ Perform)

Paragraph Perform স্টেটমেন্টে, একটি নির্দিষ্ট প্যারাগ্রাফকে কার্যকর করা হয়। এর মাধ্যমে বড় প্রোগ্রামগুলিতে কোডকে মডুলারভাবে সাজানো যায়, ফলে কোড পুনরায় ব্যবহারযোগ্য হয়ে ওঠে এবং উন্নত রক্ষণাবেক্ষণ সহজ হয়।

উদাহরণ:

PERFORM PRINT-REPORT.

...

PRINT-REPORT.
   DISPLAY 'Report printed.'
   DISPLAY '====================='.

এখানে, PERFORM PRINT-REPORT স্টেটমেন্ট PRINT-REPORT প্যারাগ্রাফটিকে কার্যকর করবে। PRINT-REPORT প্যারাগ্রাফটি একটি নির্দিষ্ট আউটপুট প্রদর্শন করার কাজ করবে।


3. Conditional Perform (শর্তাধীন Perform)

কোনো কোড ব্লক শর্তসাপেক্ষে কার্যকর করতে PERFORM স্টেটমেন্ট ব্যবহৃত হয়। এটি মূলত কোনো শর্ত পূর্ণ হলে নির্দিষ্ট প্যারাগ্রাফ বা কোড এক্সিকিউট করতে ব্যবহৃত হয়।

উদাহরণ:

IF AGE >= 18
   PERFORM PRINT-ADULT.
ELSE
   PERFORM PRINT-MINOR.
END-IF.

PRINT-ADULT.
   DISPLAY 'You are an adult.'

PRINT-MINOR.
   DISPLAY 'You are a minor.'

এখানে, PERFORM PRINT-ADULT এবং PERFORM PRINT-MINOR স্টেটমেন্ট দুটি শর্তসাপেক্ষে কার্যকর করা হচ্ছে। যদি AGE ১৮ বা তার বেশি হয়, তবে PRINT-ADULT প্যারাগ্রাফটি কার্যকর হবে, অন্যথায় PRINT-MINOR প্যারাগ্রাফটি কার্যকর হবে।


4. PERFORM WITH TIMES (একাধিক বার Perform)

কোনো কোড ব্লক বা প্যারাগ্রাফকে নির্দিষ্ট সংখ্যক বার চালানোর জন্য PERFORM WITH TIMES স্টেটমেন্ট ব্যবহৃত হয়।

উদাহরণ:

PERFORM PRINT-NAME 5 TIMES.

...

PRINT-NAME.
   DISPLAY 'Hello, User!'

এখানে, PRINT-NAME প্যারাগ্রাফটি ৫ বার কার্যকর হবে এবং প্রতিবার "Hello, User!" স্ক্রীনে প্রদর্শিত হবে।


5. PERFORM UNTIL (শর্তসাপেক্ষ Perform)

PERFORM UNTIL স্টেটমেন্টটি শর্ত পূর্ণ না হওয়া পর্যন্ত একটি কোড স্নিপেট বা প্যারাগ্রাফ একাধিক বার কার্যকর করতে ব্যবহৃত হয়।

উদাহরণ:

PERFORM UNTIL TOTAL > 100
   ADD 10 TO TOTAL
END-PERFORM.

এখানে, TOTAL এর মান ১০০ এর বেশি না হওয়া পর্যন্ত PERFORM UNTIL ব্লকটি চালানো হবে এবং TOTAL এর মান ১০ প্রতি বার বাড়ানো হবে।


সারসংক্ষেপ

PERFORM স্টেটমেন্ট COBOL প্রোগ্রামিংয়ে কোডের পুনঃব্যবহারযোগ্যতা এবং সংগঠন বৃদ্ধি করতে সাহায্য করে। এটি কোডের কার্যকারিতা সংক্ষেপে এবং আরও মডুলারভাবে তৈরি করতে সহায়ক, যা বড় প্রোগ্রামগুলির রক্ষণাবেক্ষণ এবং উন্নতির ক্ষেত্রে গুরুত্বপূর্ণ। PERFORM স্টেটমেন্ট বিভিন্ন ধরনের শর্ত, ইনলাইন কোড, প্যারাগ্রাফ কল, বা বার বার কোড চালানোর জন্য ব্যবহৃত হতে পারে।

common.content_added_by

PERFORM UNTIL এবং PERFORM TIMES এর ব্যবহার

211
211

COBOL-এ PERFORM UNTIL এবং PERFORM TIMES এর ব্যবহার

COBOL ভাষায় PERFORM UNTIL এবং PERFORM TIMES হল দুটি গুরুত্বপূর্ণ লুপিং স্টেটমেন্ট যা নির্দিষ্ট শর্ত পূর্ণ না হওয়া বা নির্দিষ্ট সংখ্যক বার একটি ব্লক কোড রান করানোর জন্য ব্যবহৃত হয়। এই দুটি স্টেটমেন্টের মধ্যে প্রধান পার্থক্য হল, একটিতে শর্তের উপর ভিত্তি করে লুপ চালানো হয় এবং অন্যটিতে নির্দিষ্ট সংখ্যক বার লুপ চালানো হয়।


১. PERFORM UNTIL (শর্ত অনুযায়ী লুপ)

PERFORM UNTIL একটি লুপ স্টেটমেন্ট যা তখন পর্যন্ত চলতে থাকে যতক্ষণ না নির্দিষ্ট শর্ত পূর্ণ হয়। এটি মূলত ব্যবহার করা হয় যখন লুপের জন্য একটি শর্ত থাকতে হয়, যা লুপ বন্ধ করার জন্য সত্য (True) হতে হবে।

Syntax:

PERFORM statement UNTIL condition
  • statement: যেকোনো COBOL কমান্ড বা ব্লক।
  • condition: সেই শর্ত যা পূর্ণ না হওয়া পর্যন্ত লুপ চলতে থাকবে।

উদাহরণ:

01  COUNTER    PIC 99 VALUE 1.

PROCEDURE DIVISION.
    PERFORM UNTIL COUNTER > 5
        DISPLAY 'Counter value: ' COUNTER
        ADD 1 TO COUNTER
    END-PERFORM.
    STOP RUN.

ব্যাখ্যা:

  • এই উদাহরণে COUNTER এর মান ১ থেকে শুরু হয়ে ৫ পর্যন্ত বৃদ্ধি পাবে এবং প্রতি লুপে তার মান প্রদর্শন হবে।
  • PERFORM UNTIL COUNTER > 5 এর মানে হলো, যতক্ষণ না COUNTER এর মান ৫ এর বেশি হয়, ততক্ষণ লুপ চলতে থাকবে।
  • লুপ চলাকালীন প্রতি চক্রে COUNTER এর মান ১ করে বাড়ানো হবে।

২. PERFORM TIMES (নির্দিষ্ট সংখ্যক বার লুপ)

PERFORM TIMES একটি লুপ স্টেটমেন্ট যা নির্দিষ্ট সংখ্যক বার একটি কোড ব্লক চালানোর জন্য ব্যবহৃত হয়। এটি সাধারণত সেই পরিস্থিতিতে ব্যবহৃত হয় যখন আপনাকে একটি নির্দিষ্ট সংখ্যা জানিয়ে লুপ চালাতে হয়।

Syntax:

PERFORM statement TIMES number
  • statement: যেকোনো COBOL কমান্ড বা ব্লক।
  • number: লুপ কতবার চলবে তার সংখ্যা।

উদাহরণ:

01  COUNTER    PIC 99 VALUE 1.

PROCEDURE DIVISION.
    PERFORM 5 TIMES
        DISPLAY 'Counter value: ' COUNTER
        ADD 1 TO COUNTER
    END-PERFORM.
    STOP RUN.

ব্যাখ্যা:

  • এই উদাহরণে COUNTER ৫ বার প্রদর্শিত হবে, এবং প্রতি বার লুপে তার মান ১ করে বাড়ানো হবে।
  • PERFORM 5 TIMES এর মানে হলো, কোডটি ৫ বার চলবে।

৩. PERFORM UNTIL এবং PERFORM TIMES এর মধ্যে পার্থক্য

বৈশিষ্ট্যPERFORM UNTILPERFORM TIMES
ব্যবহারশর্ত অনুযায়ী লুপ চালানোনির্দিষ্ট সংখ্যক বার লুপ চালানো
শর্তলুপ চলতে থাকবে যতক্ষণ না শর্ত পূর্ণ হয়লুপ নির্দিষ্ট সংখ্যক বার চলবে
শেষ হওয়াযখন শর্ত পূর্ণ হয় তখন লুপ বন্ধ হবেনির্দিষ্ট সংখ্যক বার লুপ চলবে, তারপর বন্ধ হবে
প্রধান উদাহরণPERFORM UNTIL COUNTER > 5PERFORM 5 TIMES

৪. PERFORM UNTIL এবং PERFORM TIMES এর আরও উদাহরণ

PERFORM UNTIL উদাহরণ:

01  NUMBER    PIC 99 VALUE 0.

PROCEDURE DIVISION.
    PERFORM UNTIL NUMBER = 10
        ADD 1 TO NUMBER
        DISPLAY 'Number is: ' NUMBER
    END-PERFORM.
    STOP RUN.

ব্যাখ্যা:

  • এই উদাহরণে, NUMBER ১০ এর সমান হওয়া পর্যন্ত লুপ চলবে এবং প্রতি বার ১ করে বাড়ানো হবে। একবার NUMBER ১০ এ পৌঁছালে লুপ বন্ধ হবে।

PERFORM TIMES উদাহরণ:

01  VALUE    PIC 99 VALUE 1.

PROCEDURE DIVISION.
    PERFORM 3 TIMES
        DISPLAY 'Value is: ' VALUE
        ADD 2 TO VALUE
    END-PERFORM.
    STOP RUN.

ব্যাখ্যা:

  • এখানে, VALUE ৩ বার প্রদর্শিত হবে এবং প্রতি বার VALUE এর মান ২ করে বাড়ানো হবে।

সারসংক্ষেপ

  • PERFORM UNTIL: শর্ত অনুযায়ী লুপ চালাতে ব্যবহার করা হয়। শর্তটি পূর্ণ না হওয়া পর্যন্ত লুপ চালাতে থাকে।
  • PERFORM TIMES: নির্দিষ্ট সংখ্যক বার লুপ চালাতে ব্যবহার করা হয়।

এই দুটি কমান্ড লুপিং লজিককে আরও উন্নত এবং নমনীয় করতে সাহায্য করে, যা কোডের কার্যকারিতা বাড়ায়।

common.content_added_by

Nested Loops এবং Iteration Techniques

232
232

Nested Loops এবং Iteration Techniques

Nested loops এবং Iteration techniques প্রোগ্রামিং ভাষায় একটি বা একাধিক লুপের ভিতরে আরেকটি লুপ ব্যবহার করার জন্য ব্যবহৃত হয়। এটি প্রোগ্রামে একাধিক পদক্ষেপ বা কার্যাবলি একে অপরের সাথে সম্পর্কিত হওয়ার জন্য উপকারী হয়। COBOL প্রোগ্রামিং ভাষায় nested loops এবং iteration techniques কোডের কার্যকারিতা এবং পুনরাবৃত্তি (repetition) কাজ সহজ করে তোলে।


১. Nested Loops

Nested loops হল এমন লুপ যেখানে এক লুপের ভিতরে অন্য একটি লুপ থাকে। এতে, বাইরের লুপ একবার রান হওয়ার পর ভিতরের লুপ পুনরায় তার সমস্ত ইটারেশন (iteration) সম্পন্ন করে। এই ধরনের লুপ প্রয়োজনীয় যখন আপনার একাধিক ভিন্ন শর্ত বা সেগমেন্টের উপর একাধিক বার কাজ করতে হয়।

১.১ Nested Loops এর গঠন

PERFORM VARYING index1 FROM 1 BY 1 UNTIL index1 > 5
    PERFORM VARYING index2 FROM 1 BY 1 UNTIL index2 > 3
        DISPLAY "index1 = " index1 " , index2 = " index2
    END-PERFORM
END-PERFORM

এখানে, বাইরের লুপ index1 এর মান ১ থেকে ৫ পর্যন্ত বাড়াচ্ছে এবং ভিতরের লুপ index2 এর মান ১ থেকে ৩ পর্যন্ত বাড়াচ্ছে। ভিতরের লুপ প্রতিবার বাইরের লুপের এক ইটারেশন সম্পন্ন হওয়ার পরে শুরু হবে। এই ধরনের লুপ ব্যবহার করা হয় যখন বিভিন্ন শর্তের উপর একাধিক বার কাজ করতে হয়।

১.২ Nested Loops এর উদাহরণ

ধরা যাক, একটি ম্যাট্রিক্সের সব এলিমেন্ট প্রিন্ট করতে চাই:

01  matrix.
    05  row OCCURS 5 TIMES.
        10  column OCCURS 3 TIMES PIC 9(3).

MOVE 1 TO matrix (1, 1)
MOVE 2 TO matrix (1, 2)
MOVE 3 TO matrix (1, 3)
MOVE 4 TO matrix (2, 1)
MOVE 5 TO matrix (2, 2)
MOVE 6 TO matrix (2, 3)

PERFORM VARYING i FROM 1 BY 1 UNTIL i > 5
    PERFORM VARYING j FROM 1 BY 1 UNTIL j > 3
        DISPLAY "matrix (" i "," j ") = " matrix (i, j)
    END-PERFORM
END-PERFORM

এখানে, ৫টি সারি এবং ৩টি কলামের ম্যাট্রিক্স তৈরি করা হয়েছে এবং প্রতিটি এলিমেন্টকে প্রিন্ট করা হচ্ছে। বাইরের লুপ সারির উপর কাজ করে, এবং ভিতরের লুপ কলামের উপর কাজ করে।


২. Iteration Techniques

Iteration techniques হল সেই কৌশল যা একটি নির্দিষ্ট কাজ পুনরায় একাধিক বার সম্পাদন করতে ব্যবহৃত হয়। কোডে বার বার একই কাজ করার জন্য loops (যেমন: FOR, WHILE, DO WHILE) ব্যবহার করা হয়। COBOL-এ বিভিন্ন ধরনের iteration techniques ব্যবহার করা যায়, যেমন:

২.১ VARYING Statement ব্যবহার করা

COBOL এ VARYING স্টেটমেন্ট লুপের পরিবর্তনশীল ইনডেক্স চালানোর জন্য ব্যবহৃত হয়। এটি প্রোগ্রামের একটি বা একাধিক মান পরিবর্তন করার জন্য সহায়ক।

PERFORM VARYING index FROM 1 BY 1 UNTIL index > 5
    DISPLAY "Index = " index
END-PERFORM

এটি ১ থেকে ৫ পর্যন্ত index এর মান পরিবর্তন করে এবং প্রতি পদক্ষেপে প্রদর্শন করে।

২.২ PERFORM Statement ব্যবহার করা

COBOL এ PERFORM স্টেটমেন্ট দিয়ে কোনও একাধিক কাজ পুনরায় চালানো যায়। এটি একটি বিশেষভাবে নির্ধারিত কাজের পুনরাবৃত্তি করার জন্য ব্যবহৃত হয়।

PERFORM TASK-1
PERFORM TASK-2
PERFORM TASK-3

এখানে, TASK-1, TASK-2, এবং TASK-3 নামে তিনটি পৃথক কাজ একে একে সম্পন্ন হবে।

২.৩ WHILE Loop

WHILE লুপ ব্যবহৃত হয় যখন শর্ত মেটানো না হওয়া পর্যন্ত কোড চলতে থাকে। COBOL-এ PERFORM UNTIL এর মাধ্যমে একটি WHILE লুপের মতো কাজ করা সম্ভব।

PERFORM UNTIL counter > 5
    DISPLAY "Counter = " counter
    ADD 1 TO counter
END-PERFORM

এখানে, counter এর মান ৫ এর বেশি না হওয়া পর্যন্ত PERFORM লুপ চলতে থাকবে এবং প্রতি ইটারেশনে counter এর মান বাড়ানো হবে।


৩. Iteration Techniques এর সুবিধা

  • কোডের পুনরাবৃত্তি: একাধিক কাজ বা শর্তের উপর একাধিক বার কোড চালানো সহজ হয়।
  • কোডের পাঠযোগ্যতা: Nested loops এবং iteration techniques কোডের পাঠযোগ্যতা এবং পরিষ্কারতা বৃদ্ধি করে।
  • বড় ডেটা প্রক্রিয়াকরণ: বড় ডেটাসেট বা ম্যাট্রিক্সের উপরে কাজ করার জন্য এটি অত্যন্ত কার্যকরী।

সারসংক্ষেপ

Nested Loops এবং Iteration Techniques COBOL প্রোগ্রামিং ভাষায় গুরুত্বপূর্ণ কন্ট্রোল স্ট্রাকচার যা প্রোগ্রামের কার্যকরিতা বৃদ্ধি করে এবং একাধিক শর্তের উপর কাজ করার সুবিধা দেয়। Nested loops বিভিন্ন লুপের মধ্যে একাধিক ইটারেশন সম্পাদন করতে ব্যবহৃত হয়, এবং iteration techniques লুপের মাধ্যমে কোডের পুনরাবৃত্তি সক্ষম করে। এই কৌশলগুলি বড় এবং জটিল প্রোগ্রামে কার্যকারিতা এবং দক্ষতা বাড়ানোর জন্য অপরিহার্য।

common.content_added_by

COBOL এ Recursion এর ব্যবহার

200
200

COBOL এ Recursion এর ব্যবহার

Recursion হল একটি প্রোগ্রামিং কৌশল যেখানে একটি ফাংশন বা সাবরুটিন নিজেকে পুনরায় কল করে নির্দিষ্ট শর্তে পৌঁছানো পর্যন্ত। যদিও COBOL একটি পদ্ধতিগত ভাষা এবং সাধারণত পুনরাবৃত্তি (iteration) ব্যবহার করে থাকে, তবে recursion কিছু বিশেষ ক্ষেত্রে ব্যবহার করা যায়। COBOL এ recursion ব্যবহার করার জন্য বিশেষ কিছু কৌশল রয়েছে, যেগুলি মূলত PERFORM এবং CALL স্টেটমেন্টের মাধ্যমে প্রয়োগ করা হয়।

COBOL ভাষায় recursion ব্যবহারের জন্য কোনও সরাসরি ভাষাগত সমর্থন নেই, তবে নির্দিষ্ট লজিকের মাধ্যমে এটি অর্জন করা সম্ভব। সাধারণত PERFORM স্টেটমেন্টের মাধ্যমে নিজেকে পুনরায় কল করা হয়।


COBOL এ Recursion এর উদাহরণ

একটি সাধারণ উদাহরণ দেয়া হলো যেখানে ফ্যাক্টরিয়াল (Factorial) গণনা করতে recursion ব্যবহার করা হয়েছে।

উদাহরণ: ফ্যাক্টরিয়াল গণনা

ফ্যাক্টরিয়াল গণনা করার জন্য Recursion ব্যবহার করা হয়েছে, যেখানে একটি সংখ্যা (N) এর জন্য N! = N * (N-1) * (N-2) * ... * 1

       IDENTIFICATION DIVISION.
       PROGRAM-ID. FactorialRecursion.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  NUM            PIC 9(3) VALUE 5.
       01  RESULT         PIC 9(18) VALUE 1.

       PROCEDURE DIVISION.

       CALL 'Factorial' USING NUM RESULT.

       DISPLAY 'Factorial of ' NUM ' is ' RESULT.
       STOP RUN.

       FACTORIAL SECTION.
       PROCEDURE DIVISION.
       FACTORIAL.
           IF NUM = 1
               EXIT
           END-IF
           MULTIPLY NUM BY RESULT GIVING RESULT.
           SUBTRACT 1 FROM NUM GIVING NUM.
           CALL 'Factorial' USING NUM RESULT.
           EXIT.

ব্যাখ্যা:

  • DATA DIVISION: এখানে NUM এবং RESULT নামক দুইটি ডেটা আইটেম ডিফাইন করা হয়েছে।
    • NUM: এটি মূল ইনপুট, যার ফ্যাক্টরিয়াল আমরা গণনা করতে চাই।
    • RESULT: এটি ফ্যাক্টরিয়ালের মান ধারণ করে।
  • CALL: Factorial নামে একটি সাবরুটিন কল করা হয়েছে। এখানে ফ্যাক্টরিয়াল গণনা করতে NUM এবং RESULT প্যারামিটার হিসেবে পাঠানো হচ্ছে।
  • FACTORIAL SECTION: এখানে ফ্যাক্টরিয়াল গণনা করার জন্য একটি FACTORIAL সাবরুটিন তৈরি করা হয়েছে, যা নিজেকে পুনরায় কল করে কাজটি সম্পন্ন করে।

COBOL এ Recursion ব্যবহারের সীমাবদ্ধতা

COBOL-এর Recursion বেশ সীমিত এবং এটি কিছু সমস্যা সৃষ্টি করতে পারে:

  1. Stack Overflow: COBOL-এ recursion অত্যধিকভাবে ব্যবহৃত হলে স্ট্যাকওভারফ্লো সমস্যা দেখা দিতে পারে, কারণ COBOL এ স্ট্যাক সীমাবদ্ধ।
  2. Performance: Recursion অধিক ব্যবহারে কার্যকর না হতে পারে, কারণ COBOL সাধারণত লুপিং বা পুনরাবৃত্তি ব্যবহারে আরও দক্ষ।
  3. Complexity: Recursion অনেক সময় প্রোগ্রামের জটিলতা বাড়াতে পারে, যা উন্নত ডিবাগিং এবং মেইনটেনেন্সে সমস্যা সৃষ্টি করতে পারে।

Recursion এর বিকল্প (Iteration)

COBOL এ Recursion সাধারণত PERFORM স্টেটমেন্টের মাধ্যমে iteration এর মতো কাজ করতে পারে, এবং এটি প্রোগ্রামের কার্যকারিতা ও স্ট্যাক ব্যবহারের দিক থেকে আরও নিরাপদ। অনেক সময় recursion এর পরিবর্তে PERFORM UNTIL বা PERFORM VARYING ব্যবহার করে পুনরাবৃত্তি করা হয়।

উদাহরণ: ফ্যাক্টরিয়াল গণনা (Iteration)

       IDENTIFICATION DIVISION.
       PROGRAM-ID. FactorialIteration.

       DATA DIVISION.
       WORKING-STORAGE SECTION.
       01  NUM            PIC 9(3) VALUE 5.
       01  RESULT         PIC 9(18) VALUE 1.
       01  I              PIC 9(3) VALUE 1.

       PROCEDURE DIVISION.
           PERFORM VARYING I FROM 1 BY 1 UNTIL I > NUM
               MULTIPLY RESULT BY I GIVING RESULT
           END-PERFORM.

           DISPLAY 'Factorial of ' NUM ' is ' RESULT.
           STOP RUN.

ব্যাখ্যা:

  • এখানে PERFORM VARYING ব্যবহার করা হয়েছে, যা I নামক ভেরিয়েবলের মাধ্যমে পুনরাবৃত্তি (iteration) করে ফ্যাক্টরিয়াল গণনা করবে। NUM এর মান অনুযায়ী I একে একে গুণ করে RESULT এ সংযুক্ত করবে।

সারসংক্ষেপ

COBOL ভাষায় Recursion সাধারণত কিছু নির্দিষ্ট পরিস্থিতিতে এবং PERFORM স্টেটমেন্টের মাধ্যমে প্রয়োগ করা যেতে পারে, তবে এটি খুব বেশি ব্যবহৃত হয় না। COBOL প্রোগ্রামিংয়ে সাধারণত iteration বা looping কৌশলগুলো বেশি কার্যকরী এবং নিরাপদ। Recursion ব্যবহারের ক্ষেত্রে সতর্ক থাকা উচিত, কারণ এটি স্ট্যাক ব্যবহারের সমস্যা এবং পারফরম্যান্সে নেতিবাচক প্রভাব ফেলতে পারে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion